home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / MacHaskell 2.2 / progs / demo / X11 / graphics / sqrlmt.hs < prev    next >
Encoding:
Text File  |  1994-09-27  |  5.0 KB  |  154 lines  |  [TEXT/YHS2]

  1. 80.0),(640.0,320.0)), 
  2.           ((320.0,320.0),(480.0,280.0)), 
  3.           ((280.0,400.0),(160.0,440.0)), 
  4.           ((160.0,240.0),(280.0,400.0)), 
  5.           ((160.0,440.0),(160.0,240.0)), 
  6.           ((120.0,480.0),(0.0,320.0)), 
  7.           ((0.0,320.0),(0.0,520.0)), 
  8.           ((120.0,480.0),(0.0,520.0)), 
  9.           ((240.0,640.0),(160.0,480.0)), 
  10.           ((400.0,480.0),(440.0,640.0)), 
  11.           ((320.0,320.0),(400.0,480.0)), 
  12.           ((160.0,120.0),(320.0,320.0)), 
  13.           ((0.0,0.0),(160.0,120.0)), 
  14.           ((640.0,240.0),(320.0,160.0)), 
  15.           ((640.0,40.0),(560.0,0.0)), 
  16.           ((520.0,40.0),(640.0,80.0)), 
  17.           ((480.0,0.0),(520.0,40.0)), 
  18.           ((480.0,80.0),(400.0,0.0)), 
  19.           ((640.0,120.0),(480.0,80.0)), 
  20.           ((480.0,160.0),(640.0,160.0)), 
  21.           ((320.0,0.0),(480.0,160.0)), 
  22.           ((240.0,40.0),(320.0,0.0)), 
  23.           ((0.0,0.0),(240.0,40.0))]
  24.  
  25. q = Grid 16 16 [((10.0,6.0),(9.0,4.0)), 
  26.             ((12.0,4.0),(10.0,6.0)), 
  27.         ((9.0,4.0),(12.0,4.0)), 
  28.         ((0.0,6.0),(7.0,5.0)), 
  29.         ((0.0,8.0),(0.0,16.0)), 
  30.         ((0.0,0.0),(0.0,4.0)), 
  31.         ((15.0,16.0),(16.0,14.0)), 
  32.         ((16.0,12.0),(14.0,16.0)), 
  33.         ((13.0,16.0),(16.0,10.0)), 
  34.         ((13.0,12.0),(12.0,16.0)), 
  35.         ((16.0,8.0),(13.0,12.0)), 
  36.         ((15.0,6.0),(16.0,8.0)), 
  37.         ((16.0,0.0),(15.0,6.0)), 
  38.         ((10.0,16.0),(14.0,5.0)), 
  39.         ((10.0,10.0),(10.0,7.0)), 
  40.         ((8.0,16.0),(10.0,10.0)), 
  41.         ((8.0,11.0),(8.0,8.0)), 
  42.         ((6.0,16.0),(8.0,11.0)), 
  43.         ((6.0,11.0),(4.0,16.0)), 
  44.         ((6.0,9.0),(6.0,11.0)), 
  45.         ((4.0,11.0),(4.0,9.0)), 
  46.         ((2.0,16.0),(4.0,11.0)), 
  47.         ((4.0,9.0),(0.0,8.0)), 
  48.         ((6.0,9.0),(4.0,9.0)), 
  49.         ((12.0,6.0),(6.0,9.0)), 
  50.         ((16.0,0.0),(12.0,6.0)), 
  51.         ((9.0,3.0),(8.0,1.0)), 
  52.         ((11.0,1.0),(9.0,3.0)), 
  53.         ((8.0,1.0),(11.0,1.0)), 
  54.         ((8.0,0.0),(7.0,1.0)), 
  55.         ((5.0,2.0),(7.0,1.0)), 
  56.         ((6.0,0.0),(7.0,1.0)), 
  57.         ((5.0,2.0),(4.0,0.0)), 
  58.         ((3.0,3.0),(5.0,2.0)), 
  59.         ((3.0,3.0),(0.0,4.0)), 
  60.         ((2.0,0.0),(3.0,3.0))]
  61.  
  62. r = Grid 32 32 [((32.0,0.0),(24.0,8.0)), 
  63.             ((32.0,4.0),(30.0,2.0)), 
  64.         ((28.0,4.0),(32.0,8.0)), 
  65.         ((32.0,12.0),(26.0,6.0)), 
  66.         ((24.0,8.0),(32.0,16.0)), 
  67.         ((22.0,0.0),(24.0,8.0)), 
  68.         ((22.0,12.0),(12.0,0.0)), 
  69.         ((32.0,20.0),(22.0,12.0)), 
  70.         ((24.0,26.0),(10.0,22.0)), 
  71.         ((32.0,32.0),(24.0,26.0)), 
  72.         ((16.0,28.0),(24.0,32.0)), 
  73.         ((6.0,26.0),(16.0,28.0)), 
  74.         ((16.0,32.0),(4.0,28.0)), 
  75.         ((2.0,30.0),(8.0,32.0)), 
  76.         ((0.0,32.0),(16.0,16.0)), 
  77.         ((0.0,24.0),(10.0,12.0)), 
  78.         ((4.0,8.0),(0.0,16.0)), 
  79.         ((28.0,20.0),(32.0,24.0)), 
  80.         ((16.0,16.0),(28.0,20.0)), 
  81.         ((4.0,8.0),(16.0,16.0)), 
  82.         ((2.0,4.0),(4.0,8.0)), 
  83.         ((2.0,4.0),(0.0,8.0)), 
  84.         ((0.0,0.0),(2.0,4.0))]
  85.  
  86. s = Grid 32 32 [((24.0,0.0),(32.0,0.0)), 
  87.             ((0.0,0.0),(16.0,0.0)), 
  88.         ((30.0,14.0),(32.0,12.0)), 
  89.         ((32.0,8.0),(28.0,10.0)), 
  90.         ((26.0,6.0),(32.0,4.0)), 
  91.         ((26.0,6.0),(24.0,0.0)), 
  92.         ((30.0,14.0),(26.0,6.0)), 
  93.         ((32.0,16.0),(30.0,14.0)), 
  94.         ((30.0,16.0),(26.0,18.0)), 
  95.         ((30.0,22.0),(30.0,16.0)), 
  96.         ((26.0,18.0),(30.0,22.0)), 
  97.         ((24.0,24.0),(20.0,20.0)), 
  98.         ((24.0,18.0),(24.0,24.0)), 
  99.         ((20.0,20.0),(24.0,18.0)), 
  100.         ((20.0,0.0),(22.0,12.0)), 
  101.         ((14.0,6.0),(16.0,0.0)), 
  102.         ((14.0,16.0),(16.0,20.0)), 
  103.         ((14.0,6.0),(14.0,16.0)), 
  104.         ((20.0,24.0),(16.0,20.0)), 
  105.         ((32.0,32.0),(20.0,24.0)), 
  106.         ((16.0,28.0),(32.0,32.0)), 
  107.         ((8.0,28.0),(16.0,28.0)), 
  108.         ((0.0,32.0),(8.0,28.0)), 
  109.         ((0.0,24.0),(4.0,30.0)), 
  110.         ((0.0,20.0),(14.0,24.0)), 
  111.         ((0.0,16.0),(16.0,20.0)), 
  112.         ((0.0,12.0),(14.0,16.0)), 
  113.         ((0.0,8.0),(14.0,12.0)), 
  114.         ((0.0,4.0),(14.0,6.0))]
  115.  
  116. quartet p1 p2 p3 p4 =
  117.   Above 1 (Beside 1 p1 1 p2) 1 (Beside 1 p3 1 p4) 
  118.  
  119. cyc p1 =
  120.   quartet p1 (Rot (Rot (Rot p1))) (Rot p1) (Rot (Rot p1))
  121.  
  122. t = quartet p q r s 
  123.  
  124. u = cyc (Rot q)
  125.  
  126. side1 = quartet Nil Nil (Rot t) t
  127.  
  128. side2 = quartet side1 side1 (Rot t) t
  129.  
  130. corner1 = quartet Nil Nil Nil u
  131.  
  132. corner2 = quartet corner1 side1 (Rot side1) u
  133.  
  134. pseudocorner = quartet corner2 side2 (Rot side2) (Rot t)
  135.  
  136. pseudolimit = cyc pseudocorner
  137.  
  138. nonet p1 p2 p3 p4 p5 p6 p7 p8 p9 = 
  139.   Above 1 (Beside 1 p1 2 (Beside 1 p2 1 p3))
  140.         2 (Above 1 (Beside 1 p4 2 (Beside 1 p5 1 p6))
  141.              1 (Beside 1 p7 2 (Beside 1 p8 1 p9)))
  142.  
  143. corner = nonet corner2 side2 side2
  144.                (Rot side2) u (Rot t)
  145.            (Rot side2) (Rot t) (Rot q)
  146.  
  147. squarelimit = cyc corner
  148.  
  149. final host = draw host corner ((0,0),(500,0),(0,500)) (0,0,500,500)
  150. skewedfinal host = draw host squarelimit ((0,0),(600,200),(200,600)) (0,0,800,800)
  151.  
  152. main = getEnv "DISPLAY" >>= \ host ->
  153.        final host
  154.